There are a large number of computations that involve the calculation of a quantity of the form ##EQU2## where the values S.sub.i are a sequence of signal values, and the parameters .sup.k a.sub.i are a set of weights. The value of k will vary with the particular computation. For example, a bank of finite impulse response filters (FIRs) performs a set of computation of the form shown in Eq.(1). If there are K filters in the bank, k runs from 1 to K. The output, .sup.k F, is related to the intensity of the signal S in each of the k.sup.th frequency band. A discrete Fourier transform may also be performed in this manner.
A number of signal processing applications involve sub-band sampling an input signal. For example, image compression systems often start by generating a number of component images that differ in their spatial resolution and spatial frequency content. The sub-band sampling operation may be written in the form shown in Eq (1).
Yet another example of an important problem that may be written in terms of computations of the form shown in FIG. 1 is that of construction "neuro-networks". One class of neuro-networks may be viewed as being constructed from a sequence of ordered layers of "neurons". Each neuron receives N signals form the previous layer and generates an output signal which is related to a convolution of the form shown in Eq. (1). The task of "training" the neuro-network is equivalent to determining the values for the weights .sup.k a.sub.i.
In many of these problems, the computational cost is dominated by the cost of performing the calculation shown in Eq. (1). Hence, a number of special purpose digital processors have been designed to improve the computation shown in Eq. (1). While these processors have reduced the cost of performing such computations, the processors are either too slow or too expensive for many applications.
Neuro-networks provide relatively high speed in performing these types of computations because the operation is performed in parallel. Unfortunately, neuro-networks use either resistors or EEPROM cells to store the weights .sup.k a.sub.i. The cost of integrated circuits is directly related to the area of silicon that must be utilized in constructing the circuit. Resistors are difficult to implement in small areas. Similarly, EEPROM cells require a significant area to implement. In this regard, it should be noted that neuro-networks for problems such as handwriting analysis may require in excess of 100,000 resistors.
Resistors and EEPROM also lack the accuracy needed for many convolution computations. The accuracy with which the resistance presented by an EEPROM cell may be programmed is a few percent at best. Similarly, the accuracy with which resistors can be constructed is determined by the accuracy of lithography and trimming operations. To provide high accuracy, requires large area devices which increases the expense of such devices.
Broadly, it is the object of the present invention to provide an improved computational circuit for performing convolution computations.
It is a further object of the present invention to provide a neuro-network design that does not depend on arrays of resistors or EEPROM cells.
These and other objects of the present invention will become apparent to those skilled in the art from the following detailed description of the invention and the accompanying drawings.